home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / examples / scheme / cps < prev    next >
Encoding:
Text File  |  1989-12-13  |  313 b   |  18 lines

  1. ;;; -*-Scheme-*-
  2.  
  3. (define (identity value) value)
  4.  
  5. (define (gcd a b) (cps-gcd a b identity))
  6.  
  7. (define (cps-gcd a b k)
  8.   (if (= b 0)
  9.       (k a)
  10.       (cps-remainder a b (lambda (v) (cps-gcd b v k)))))
  11.  
  12. (define (cps-remainder n d k)
  13.   (if (< n d)
  14.       (k n)
  15.       (cps-remainder (- n d) d k)))
  16.  
  17. (print (gcd 4 6))
  18.